package cn.dwy2002.binaryhandwritingserver.mapper;


import cn.dwy2002.binaryhandwritingserver.pojo.po.Article;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * @author 杜伟毅
 * @version 1.0
 * @since 2025/05/28
 */
@Mapper
public interface ArticlesMapper {
    /**
     * 查询所有文章（未被逻辑删除的）
     *
     * @return 返回所有未被删除的文章列表
     * @author 杜伟毅
     * @since 2025/5/28 0028 21:10
     */
    List<Article> selectAll();

    /**
     * 插入一篇新文章
     *
     * @param article 要插入的文章对象，id需由调用方生成或由数据库自动生成
     * @author 杜伟毅
     * @since 2025/5/28 0028 21:10
     */
    void insert(Article article);

    /**
     * 更新一篇文章信息
     *
     * @param article 包含更新数据的文章对象，必须包含id字段用于定位记录
     * @author 杜伟毅
     * @since 2025/5/28 0028 21:10
     */
    void update(Article article);

    /**
     * 根据id查询文章
     *
     * @param id 文章id
     * @return 返回对应ID的文章对象，若不存在则返回null
     * @author 杜伟毅
     * @since 2025/5/28 0028 20:56
     */
    Article selectById(Long id);

    /**
     * 根据文章ID删除文章（逻辑删除）
     *
     * @param id 要删除的文章ID
     * @author 杜伟毅
     * @since 2025/5/28 0028 21:10
     */
    void deleteById(Long id);
}
